<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>ROSS: core/gvt/mpi_allreduce.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <a href="https://github.com/ROSS-org/ROSS">
   <div id="projectname">ROSS
   </div>
   </a>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_af18cf245e3394ab3b436135935cfd6e.html">core</a></li><li class="navelem"><a class="el" href="dir_d702b973d4d20fda29a004d0c4a89b11.html">gvt</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">mpi_allreduce.c</div>  </div>
</div><!--header-->
<div class="contents">
<a href="mpi__allreduce_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="ross_8h.html">ross.h</a>&gt;</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#ae30855389260e86fd61cb17a08046c97">    3</a></span>&#160;<span class="preprocessor">#define TW_GVT_NORMAL 0</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#a7964d4a21bcc7ac7673555c87503418e">    4</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define TW_GVT_COMPUTE 1</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#a83edac7c78612d53826c9988106914a2">    6</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="mpi__allreduce_8c.html#a83edac7c78612d53826c9988106914a2">g_tw_gvt_max_no_change</a> = 10000;</div>
<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#ad804b4a33c7be35ecc27d268d994798e">    7</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="mpi__allreduce_8c.html#ad804b4a33c7be35ecc27d268d994798e">g_tw_gvt_no_change</a> = 0;</div>
<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">    8</a></span>&#160;<span class="keyword">static</span> <a class="code" href="ross-types_8h.html#a68910a3e880a16d5acbac8fc120229a2">tw_stat</a> <a class="code" href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">all_reduce_cnt</a> = 0;</div>
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#a7dd173792894040d1a5e97a056808a63">    9</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="mpi__allreduce_8c.html#a7dd173792894040d1a5e97a056808a63">gvt_cnt</a> = 0;</div>
<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#a0c508e0a1430e934b924661cb230781a">   10</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="mpi__allreduce_8c.html#a0c508e0a1430e934b924661cb230781a">gvt_force</a> = 0;</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="mpi__allreduce_8c.html#a0777df334d083ddc774a6ddf4042f035">   12</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="structtw__optdef.html">tw_optdef</a> <a class="code" href="mpi__allreduce_8c.html#a0777df334d083ddc774a6ddf4042f035">gvt_opts</a> [] =</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;{</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <a class="code" href="tw-opts_8h.html#a0e45b7a88a51dca3fe99d31aae9636c4">TWOPT_GROUP</a>(<span class="stringliteral">&quot;ROSS MPI GVT&quot;</span>),</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <a class="code" href="tw-opts_8h.html#a0d00417e3bef0d001f256f846c72838d">TWOPT_UINT</a>(<span class="stringliteral">&quot;gvt-interval&quot;</span>, <a class="code" href="ross-extern_8h.html#ad188f65402a3bc8f2751e3f653849bc3">g_tw_gvt_interval</a>, <span class="stringliteral">&quot;GVT Interval: Iterations through scheduling loop (synch=1,2,3,4), or ms between GVTs (synch=5)&quot;</span>),</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <a class="code" href="tw-opts_8h.html#aeb3c6cf7dfe9b1b9927905a7f5d86855">TWOPT_DOUBLE</a>(<span class="stringliteral">&quot;report-interval&quot;</span>, <a class="code" href="mpi__allreduce_8h.html#a5ebe8750975e33872b854744a83a3f2d">gvt_print_interval</a>, <span class="stringliteral">&quot;percent of runtime to print GVT&quot;</span>),</div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <a class="code" href="tw-opts_8h.html#a38209b0e7568d41f5448ae5f884290a4">TWOPT_END</a>()</div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;};</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="mpi__allreduce_8h.html#ab5b7bed8b49012ab92a14632cba26847">   20</a></span>&#160;<a class="code" href="ross-types_8h.html#a68910a3e880a16d5acbac8fc120229a2">tw_stat</a> <a class="code" href="mpi__allreduce_8c.html#ab5b7bed8b49012ab92a14632cba26847">st_get_allreduce_count</a>()</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;{</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">all_reduce_cnt</a>;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">const</span> <a class="code" href="structtw__optdef.html">tw_optdef</a> *</div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#a5f11084158c441f3119d608cb25027de">   26</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#a5f11084158c441f3119d608cb25027de">tw_gvt_setup</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;{</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <a class="code" href="mpi__allreduce_8c.html#a7dd173792894040d1a5e97a056808a63">gvt_cnt</a> = 0;</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="mpi__allreduce_8c.html#a0777df334d083ddc774a6ddf4042f035">gvt_opts</a>;</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#a0609349515ccf596bffb1efb59ecd2ea">   34</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#a0609349515ccf596bffb1efb59ecd2ea">tw_gvt_start</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;{</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;}</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#a483098cf3c7db0378e825db007a3a300">   39</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#a483098cf3c7db0378e825db007a3a300">tw_gvt_force_update</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;{</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <a class="code" href="mpi__allreduce_8c.html#a0c508e0a1430e934b924661cb230781a">gvt_force</a>++;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <a class="code" href="mpi__allreduce_8c.html#a7dd173792894040d1a5e97a056808a63">gvt_cnt</a> = <a class="code" href="ross-extern_8h.html#ad188f65402a3bc8f2751e3f653849bc3">g_tw_gvt_interval</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;}</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#a805cc76b3ba7583d9bb9186afc73e2ba">   46</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#a805cc76b3ba7583d9bb9186afc73e2ba">tw_gvt_force_update_realtime</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;{</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <a class="code" href="mpi__allreduce_8c.html#a0c508e0a1430e934b924661cb230781a">gvt_force</a>++;</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <a class="code" href="ross-extern_8h.html#a58e9630b16ab32d76f404da9873a69d3">g_tw_gvt_interval_start_cycles</a> = 0; <span class="comment">// reset to start of time</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#a9e95ad0fee8ab038f3196e585c1f694c">   53</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#a14d128d340e53baff763e91125748254">tw_gvt_stats</a>(FILE * f)</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;{</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\nTW GVT Statistics: MPI AllReduce\n&quot;</span>);</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %11d\n&quot;</span>, <span class="stringliteral">&quot;GVT Interval&quot;</span>, <a class="code" href="ross-extern_8h.html#ad188f65402a3bc8f2751e3f653849bc3">g_tw_gvt_interval</a>);</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %llu\n&quot;</span>, <span class="stringliteral">&quot;GVT Real Time Interval (cycles)&quot;</span>, <a class="code" href="ross-extern_8h.html#ade2fd253bc0194452fe2c12b94577fa1">g_tw_gvt_realtime_interval</a>);</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %11.8lf\n&quot;</span>, <span class="stringliteral">&quot;GVT Real Time Interval (sec)&quot;</span>, (<span class="keywordtype">double</span>)<a class="code" href="ross-extern_8h.html#ade2fd253bc0194452fe2c12b94577fa1">g_tw_gvt_realtime_interval</a>/(<span class="keywordtype">double</span>)<a class="code" href="gtod_8c.html#a460e9a582762cd454d37d9d2704c3a67">g_tw_clock_rate</a>);</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %11d\n&quot;</span>, <span class="stringliteral">&quot;Batch Size&quot;</span>, <a class="code" href="ross-extern_8h.html#ad2b9212f634d736cfcdf03b9a3b3a818">g_tw_mblock</a>);</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\n&quot;</span>);</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %11d\n&quot;</span>, <span class="stringliteral">&quot;Forced GVT&quot;</span>, <a class="code" href="mpi__allreduce_8c.html#a0c508e0a1430e934b924661cb230781a">gvt_force</a>);</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %11d\n&quot;</span>, <span class="stringliteral">&quot;Total GVT Computations&quot;</span>, <a class="code" href="ross-extern_8h.html#aad7609a89939a59a33ae1cd1f5601e7e">g_tw_gvt_done</a>);</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %11lld\n&quot;</span>, <span class="stringliteral">&quot;Total All Reduce Calls&quot;</span>, <a class="code" href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">all_reduce_cnt</a>);</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        fprintf(f, <span class="stringliteral">&quot;\t%-50s %11.2lf\n&quot;</span>, <span class="stringliteral">&quot;Average Reduction / GVT&quot;</span>,</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                        (<span class="keywordtype">double</span>) ((<span class="keywordtype">double</span>) <a class="code" href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">all_reduce_cnt</a> / (<span class="keywordtype">double</span>) <a class="code" href="ross-extern_8h.html#aad7609a89939a59a33ae1cd1f5601e7e">g_tw_gvt_done</a>));</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#ad42b0dfadde0ee424df3c500d8474b9d">   69</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#ab480140292034a18580653906c0663ed">tw_gvt_step1</a>(<a class="code" href="structtw__pe.html">tw_pe</a> *me)</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;{</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <span class="keywordflow">if</span>(me-&gt;<a class="code" href="structtw__pe.html#aa98f15c0be3577c62140c24fda6ac062">gvt_status</a> == <a class="code" href="mpi__allreduce_8c.html#a7964d4a21bcc7ac7673555c87503418e">TW_GVT_COMPUTE</a> ||</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;           (++<a class="code" href="mpi__allreduce_8c.html#a7dd173792894040d1a5e97a056808a63">gvt_cnt</a> &lt; <a class="code" href="ross-extern_8h.html#ad188f65402a3bc8f2751e3f653849bc3">g_tw_gvt_interval</a> &amp;&amp; (<a class="code" href="ross_8h.html#a096f73feb08316896d644277b486c9ea">TW_STIME_DBL</a>(<a class="code" href="splay_8c.html#a2e74d926ed307c34933ddf19e251e68b">tw_pq_minimum</a>(me-&gt;<a class="code" href="structtw__pe.html#a90e1dbe51a084d6e02580667159e13ff">pq</a>)) - <a class="code" href="ross_8h.html#a096f73feb08316896d644277b486c9ea">TW_STIME_DBL</a>(me-&gt;<a class="code" href="structtw__pe.html#a3f82dbbf2dbb0163b6078ff25cb75a1b">GVT</a>) &lt; <a class="code" href="ross-extern_8h.html#aeb7d56717189f79b0199a840b0ae6629">g_tw_max_opt_lookahead</a>)))</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#aa98f15c0be3577c62140c24fda6ac062">gvt_status</a> = <a class="code" href="mpi__allreduce_8c.html#a7964d4a21bcc7ac7673555c87503418e">TW_GVT_COMPUTE</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;}</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#adaa4a98a7109ea6966f83c9b0afc31fd">   79</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#a7e182a4c303c555479ee1e4143d57784">tw_gvt_step1_realtime</a>(<a class="code" href="structtw__pe.html">tw_pe</a> *me)</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> current_rt;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  <span class="keywordflow">if</span>( (me-&gt;<a class="code" href="structtw__pe.html#aa98f15c0be3577c62140c24fda6ac062">gvt_status</a> == <a class="code" href="mpi__allreduce_8c.html#a7964d4a21bcc7ac7673555c87503418e">TW_GVT_COMPUTE</a>) ||</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;      ( ((current_rt = <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>()) - <a class="code" href="ross-extern_8h.html#a58e9630b16ab32d76f404da9873a69d3">g_tw_gvt_interval_start_cycles</a> &lt; <a class="code" href="ross-extern_8h.html#ade2fd253bc0194452fe2c12b94577fa1">g_tw_gvt_realtime_interval</a>)</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;          &amp;&amp; (<a class="code" href="ross_8h.html#a096f73feb08316896d644277b486c9ea">TW_STIME_DBL</a>(<a class="code" href="splay_8c.html#a2e74d926ed307c34933ddf19e251e68b">tw_pq_minimum</a>(me-&gt;<a class="code" href="structtw__pe.html#a90e1dbe51a084d6e02580667159e13ff">pq</a>)) - <a class="code" href="ross_8h.html#a096f73feb08316896d644277b486c9ea">TW_STIME_DBL</a>(me-&gt;<a class="code" href="structtw__pe.html#a3f82dbbf2dbb0163b6078ff25cb75a1b">GVT</a>) &lt; <a class="code" href="ross-extern_8h.html#aeb7d56717189f79b0199a840b0ae6629">g_tw_max_opt_lookahead</a>)))</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    {</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;      <span class="comment">/* if( me-&gt;id == 0 ) */</span></div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;      <span class="comment">/*        { */</span></div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;      <span class="comment">/*          printf(&quot;GVT Step 1 RT Rank %ld: found start_cycles at %llu, rt interval at %llu, current time at %llu \n&quot;, */</span></div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;      <span class="comment">/*                 me-&gt;id, g_tw_gvt_interval_start_cycles, g_tw_gvt_realtime_interval, current_rt); */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;      <span class="comment">/*        } */</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    }</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;  me-&gt;<a class="code" href="structtw__pe.html#aa98f15c0be3577c62140c24fda6ac062">gvt_status</a> = <a class="code" href="mpi__allreduce_8c.html#a7964d4a21bcc7ac7673555c87503418e">TW_GVT_COMPUTE</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="ross-gvt_8h.html#a0d905b32b2567dd637c4926872622a70">  102</a></span>&#160;<a class="code" href="mpi__allreduce_8c.html#aef8c69bf46e491eb7fe51c088857d60f">tw_gvt_step2</a>(<a class="code" href="structtw__pe.html">tw_pe</a> *me)</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;{</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordtype">long</span> <span class="keywordtype">long</span> local_white = 0;</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordtype">long</span> <span class="keywordtype">long</span> total_white = 0;</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <a class="code" href="ross_8h.html#a80b370bc538e17441aef6afaff852678">tw_stime</a> pq_min = <a class="code" href="ross_8h.html#a471329bf2e6dd88767d6205a7dc5ce54">TW_STIME_MAX</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="ross_8h.html#a80b370bc538e17441aef6afaff852678">tw_stime</a> net_min = <a class="code" href="ross_8h.html#a471329bf2e6dd88767d6205a7dc5ce54">TW_STIME_MAX</a>;</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <a class="code" href="ross_8h.html#a80b370bc538e17441aef6afaff852678">tw_stime</a> lvt;</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <a class="code" href="ross_8h.html#a80b370bc538e17441aef6afaff852678">tw_stime</a> gvt;</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <a class="code" href="aarch64_8h.html#abcd6b97b84bebf1f961f85cd24b56c60">tw_clock</a> net_start;</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <a class="code" href="aarch64_8h.html#abcd6b97b84bebf1f961f85cd24b56c60">tw_clock</a> start = <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>();</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keywordflow">if</span>(me-&gt;<a class="code" href="structtw__pe.html#aa98f15c0be3577c62140c24fda6ac062">gvt_status</a> != <a class="code" href="mpi__allreduce_8c.html#a7964d4a21bcc7ac7673555c87503418e">TW_GVT_COMPUTE</a>)</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordflow">while</span>(1)</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;          {</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        net_start = <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            <a class="code" href="network-mpi_8c.html#a27a1957e366f9b52848477702234fc08">tw_net_read</a>(me);</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#ac1d26b7bfd058cc55cbf5ee201edb83c">stats</a>.<a class="code" href="structtw__statistics.html#a1c60ba2fc1683cc9cff5da33497f13f0">s_net_read</a> += <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>() - net_start;</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            <span class="comment">// send message counts to create consistent cut</span></div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            local_white = me-&gt;<a class="code" href="structtw__pe.html#ad7f2118d4584a910f40850a2fdc1c9ef">s_nwhite_sent</a> - me-&gt;<a class="code" href="structtw__pe.html#ab0e5e3bc50c10def6a57f8bc680e6a1a">s_nwhite_recv</a>;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            <a class="code" href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">all_reduce_cnt</a>++;</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            <span class="keywordflow">if</span>(MPI_Allreduce(</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                             &amp;local_white,</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                             &amp;total_white,</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                             1,</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                             MPI_LONG_LONG,</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                             MPI_SUM,</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                             <a class="code" href="network-mpi_8c.html#af1faeba2bc478835b35af43287f19ba7">MPI_COMM_ROSS</a>) != MPI_SUCCESS)</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;              <a class="code" href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a>(<a class="code" href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a>, <span class="stringliteral">&quot;MPI_Allreduce for GVT failed&quot;</span>);</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            <span class="keywordflow">if</span>(total_white == 0)</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;              <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;          }</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        pq_min = <a class="code" href="splay_8c.html#a2e74d926ed307c34933ddf19e251e68b">tw_pq_minimum</a>(me-&gt;<a class="code" href="structtw__pe.html#a90e1dbe51a084d6e02580667159e13ff">pq</a>);</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        net_min = <a class="code" href="network-mpi_8c.html#aad791cc8b066ed3cb37912b131b06b00">tw_net_minimum</a>();</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        lvt = me-&gt;<a class="code" href="structtw__pe.html#a63048ba8f41665780ab46b3b6635ae91">trans_msg_ts</a>;</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="ross_8h.html#a650bdf282bba8368dd3325bed7e12abc">TW_STIME_CMP</a>(lvt, pq_min) &gt; 0)</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;          lvt = pq_min;</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="ross_8h.html#a650bdf282bba8368dd3325bed7e12abc">TW_STIME_CMP</a>(lvt, net_min) &gt; 0)</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                lvt = net_min;</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <a class="code" href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">all_reduce_cnt</a>++;</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordflow">if</span>(MPI_Allreduce(</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                        &amp;lvt,</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                        &amp;gvt,</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                        1,</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                        <a class="code" href="ross_8h.html#a6311f95ce050a925b4639bdf74b75273">MPI_TYPE_TW_STIME</a>,</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                        MPI_MIN,</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                        <a class="code" href="network-mpi_8c.html#af1faeba2bc478835b35af43287f19ba7">MPI_COMM_ROSS</a>) != MPI_SUCCESS)</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                        <a class="code" href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a>(<a class="code" href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a>, <span class="stringliteral">&quot;MPI_Allreduce for GVT failed&quot;</span>);</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="ross_8h.html#a650bdf282bba8368dd3325bed7e12abc">TW_STIME_CMP</a>(gvt, me-&gt;<a class="code" href="structtw__pe.html#a460165a90b9949f8a0f640691173e35c">GVT_prev</a>) &lt; 0)</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        {</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <a class="code" href="mpi__allreduce_8c.html#ad804b4a33c7be35ecc27d268d994798e">g_tw_gvt_no_change</a> = 0;</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        {</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                gvt = me-&gt;<a class="code" href="structtw__pe.html#a460165a90b9949f8a0f640691173e35c">GVT_prev</a>;</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <a class="code" href="mpi__allreduce_8c.html#ad804b4a33c7be35ecc27d268d994798e">g_tw_gvt_no_change</a>++;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="mpi__allreduce_8c.html#ad804b4a33c7be35ecc27d268d994798e">g_tw_gvt_no_change</a> &gt;= <a class="code" href="mpi__allreduce_8c.html#a83edac7c78612d53826c9988106914a2">g_tw_gvt_max_no_change</a>) {</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                        <a class="code" href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a>(</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                                <a class="code" href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a>,</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                                <span class="stringliteral">&quot;GVT computed %d times in a row&quot;</span></div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                                <span class="stringliteral">&quot; without changing: GVT = %14.14lf, PREV %14.14lf&quot;</span></div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                                <span class="stringliteral">&quot; -- GLOBAL SYNCH -- out of memory!&quot;</span>,</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                                <a class="code" href="mpi__allreduce_8c.html#ad804b4a33c7be35ecc27d268d994798e">g_tw_gvt_no_change</a>, gvt, me-&gt;<a class="code" href="structtw__pe.html#a460165a90b9949f8a0f640691173e35c">GVT_prev</a>);</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                }</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        }</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="ross_8h.html#a650bdf282bba8368dd3325bed7e12abc">TW_STIME_CMP</a>(me-&gt;<a class="code" href="structtw__pe.html#a3f82dbbf2dbb0163b6078ff25cb75a1b">GVT</a>, gvt) &gt; 0)</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        {</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                <a class="code" href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a>(<a class="code" href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a>, <span class="stringliteral">&quot;PE %u GVT decreased %g -&gt; %g&quot;</span>,</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                                me-&gt;<a class="code" href="structtw__pe.html#a8a57f2123eddf6a195d82ecc781093e6">id</a>, me-&gt;<a class="code" href="structtw__pe.html#a3f82dbbf2dbb0163b6078ff25cb75a1b">GVT</a>, gvt);</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        }</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="ross_8h.html#a096f73feb08316896d644277b486c9ea">TW_STIME_DBL</a>(gvt) / <a class="code" href="ross-extern_8h.html#aedd6d883bb5b01f0d5c1121f48b0477e">g_tw_ts_end</a> &gt; <a class="code" href="mpi__allreduce_8h.html#a10504ff786bda8b4bc15aa8ef06f6881">percent_complete</a> &amp;&amp; (<a class="code" href="ross-extern_8h.html#a83ae3f8b8b94935a1dbdfa2d2552f508">g_tw_mynode</a> == <a class="code" href="ross-extern_8h.html#abb6067d27f1c3e888c1d276490f28088">g_tw_masternode</a>))</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        {</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                <a class="code" href="mpi__allreduce_8h.html#a987cf58596f8cd786d561f50cf23d3d3">gvt_print</a>(gvt);</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        }</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#ad7f2118d4584a910f40850a2fdc1c9ef">s_nwhite_sent</a> = 0;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#ab0e5e3bc50c10def6a57f8bc680e6a1a">s_nwhite_recv</a> = 0;</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#a63048ba8f41665780ab46b3b6635ae91">trans_msg_ts</a> = <a class="code" href="ross_8h.html#a471329bf2e6dd88767d6205a7dc5ce54">TW_STIME_MAX</a>;</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#a460165a90b9949f8a0f640691173e35c">GVT_prev</a> = <a class="code" href="ross_8h.html#a471329bf2e6dd88767d6205a7dc5ce54">TW_STIME_MAX</a>; <span class="comment">// me-&gt;GVT;</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#a3f82dbbf2dbb0163b6078ff25cb75a1b">GVT</a> = gvt;</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#aa98f15c0be3577c62140c24fda6ac062">gvt_status</a> = <a class="code" href="mpi__allreduce_8c.html#ae30855389260e86fd61cb17a08046c97">TW_GVT_NORMAL</a>;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <a class="code" href="mpi__allreduce_8c.html#a7dd173792894040d1a5e97a056808a63">gvt_cnt</a> = 0;</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="comment">// update GVT timing stats</span></div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        me-&gt;<a class="code" href="structtw__pe.html#ac1d26b7bfd058cc55cbf5ee201edb83c">stats</a>.<a class="code" href="structtw__statistics.html#a1fe13f0669aa85a80819965c67771b1c">s_gvt</a> += <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>() - start;</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="comment">// only FC if OPTIMISTIC or REALTIME, do not do for DEBUG MODE</span></div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keywordflow">if</span>( <a class="code" href="ross-extern_8h.html#ae22db4d4e754eff64535402f5fa60a5f">g_tw_synchronization_protocol</a> == <a class="code" href="ross-types_8h.html#abea764c61c75c56008ccf665a71246fda7ff3894aed4e1746b6fb19f9472678c8">OPTIMISTIC</a> ||</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;            <a class="code" href="ross-extern_8h.html#ae22db4d4e754eff64535402f5fa60a5f">g_tw_synchronization_protocol</a> == <a class="code" href="ross-types_8h.html#abea764c61c75c56008ccf665a71246fda65a00e65f23b13a6f19ea3e16f9b9e05">OPTIMISTIC_REALTIME</a> )</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;          {</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            start = <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>();</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;            <a class="code" href="ross-extern_8h.html#a36f9f2e3925202eae4c7cb42f913280c">tw_pe_fossil_collect</a>();</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;            me-&gt;<a class="code" href="structtw__pe.html#ac1d26b7bfd058cc55cbf5ee201edb83c">stats</a>.<a class="code" href="structtw__statistics.html#a395ff98d71b2e8aaddcf293fa135cd7b">s_fossil_collect</a> += <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>() - start;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;          }</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="comment">// do any necessary instrumentation calls</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordflow">if</span> ((<a class="code" href="st-instrumentation_8c.html#aa6002a27f9236e4d9c61090a247341f5">g_st_engine_stats</a> == <a class="code" href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a8ef83e71459d4c88cf3916b768a9b62c">GVT_STATS</a> || <a class="code" href="st-instrumentation_8c.html#aa6002a27f9236e4d9c61090a247341f5">g_st_engine_stats</a> == <a class="code" href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47afc9c4a97f2aa53e8f930d1b30dde8781">ALL_STATS</a>) &amp;&amp;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <a class="code" href="ross-extern_8h.html#aad7609a89939a59a33ae1cd1f5601e7e">g_tw_gvt_done</a> % <a class="code" href="st-instrumentation_8c.html#abcc733db61c88c7260b3337f114e389b">g_st_num_gvt</a> == 0 &amp;&amp; <a class="code" href="ross_8h.html#a096f73feb08316896d644277b486c9ea">TW_STIME_DBL</a>(gvt) &lt;= <a class="code" href="ross-extern_8h.html#aedd6d883bb5b01f0d5c1121f48b0477e">g_tw_ts_end</a>)</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    {</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor">#ifdef USE_DAMARIS</span></div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor"></span>        <span class="keywordflow">if</span> (g_st_damaris_enabled)</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        {</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;            st_damaris_expose_data(me, gvt, <a class="code" href="st-instrumentation_8h.html#a62e322fd5fc534ed1f671bfcae80f21fa645a42a6ad95c6926502061516d79148">GVT_COL</a>);</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;            st_damaris_end_iteration();</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        }</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;            <a class="code" href="st-instrumentation_8h.html#a6ae8d8f288de23fd6a4d9d3c8a7b296a">st_collect_engine_data</a>(me, <a class="code" href="st-instrumentation_8h.html#a62e322fd5fc534ed1f671bfcae80f21fa645a42a6ad95c6926502061516d79148">GVT_COL</a>);</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor"></span>                <a class="code" href="st-instrumentation_8h.html#a6ae8d8f288de23fd6a4d9d3c8a7b296a">st_collect_engine_data</a>(me, <a class="code" href="st-instrumentation_8h.html#a62e322fd5fc534ed1f671bfcae80f21fa645a42a6ad95c6926502061516d79148">GVT_COL</a>);</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="preprocessor"></span>    }</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor">#ifdef USE_DAMARIS</span></div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor"></span>    <span class="comment">// need to make sure damaris_end_iteration is called if GVT instrumentation not turned on</span></div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="comment">//if (!g_st_stats_enabled &amp;&amp; g_st_real_time_samp) //need to make sure if one PE enters this, all do; otherwise deadlock</span></div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordflow">if</span> (g_st_damaris_enabled &amp;&amp; (<a class="code" href="st-instrumentation_8c.html#aa6002a27f9236e4d9c61090a247341f5">g_st_engine_stats</a> == <a class="code" href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a1be4f69425bed3a0f8f35f42f4dcec4a">RT_STATS</a> || <a class="code" href="st-instrumentation_8c.html#aa6002a27f9236e4d9c61090a247341f5">g_st_engine_stats</a> == <a class="code" href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a4bd4814759ab4c480ad9a352ac2b16a6">VT_STATS</a>))</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    {</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        st_damaris_end_iteration();</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordflow">if</span> ((<a class="code" href="st-instrumentation_8c.html#a4775e770faa8c51fc4d08989f610770f">g_st_model_stats</a> == <a class="code" href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a8ef83e71459d4c88cf3916b768a9b62c">GVT_STATS</a> || <a class="code" href="st-instrumentation_8c.html#a4775e770faa8c51fc4d08989f610770f">g_st_model_stats</a> == <a class="code" href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47afc9c4a97f2aa53e8f930d1b30dde8781">ALL_STATS</a>) &amp;&amp; <a class="code" href="ross-extern_8h.html#aad7609a89939a59a33ae1cd1f5601e7e">g_tw_gvt_done</a> % <a class="code" href="st-instrumentation_8c.html#abcc733db61c88c7260b3337f114e389b">g_st_num_gvt</a> == 0)</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        <a class="code" href="st-instrumentation_8h.html#a973d9b1e0d445f4df76b97d8f829798d">st_collect_model_data</a>(me, ((<span class="keywordtype">double</span>)<a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>()) / <a class="code" href="gtod_8c.html#a460e9a582762cd454d37d9d2704c3a67">g_tw_clock_rate</a>, <a class="code" href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a8ef83e71459d4c88cf3916b768a9b62c">GVT_STATS</a>);</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <a class="code" href="st-instrumentation_8c.html#a5d4676b079764929c184583f36cf29e4">st_inst_dump</a>();</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="comment">// done with instrumentation related stuff</span></div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <a class="code" href="ross-extern_8h.html#aad7609a89939a59a33ae1cd1f5601e7e">g_tw_gvt_done</a>++;</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="comment">// reset for the next gvt round -- for use in realtime GVT mode only!!</span></div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        <a class="code" href="ross-extern_8h.html#a58e9630b16ab32d76f404da9873a69d3">g_tw_gvt_interval_start_cycles</a> = <a class="code" href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a>();</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; }</div>
<div class="ttc" id="structtw__pe_html_ab0e5e3bc50c10def6a57f8bc680e6a1a"><div class="ttname"><a href="structtw__pe.html#ab0e5e3bc50c10def6a57f8bc680e6a1a">tw_pe::s_nwhite_recv</a></div><div class="ttdeci">long long s_nwhite_recv</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00409">ross-types.h:409</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ae22db4d4e754eff64535402f5fa60a5f"><div class="ttname"><a href="ross-extern_8h.html#ae22db4d4e754eff64535402f5fa60a5f">g_tw_synchronization_protocol</a></div><div class="ttdeci">tw_synch g_tw_synchronization_protocol</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00018">ross-global.c:18</a></div></div>
<div class="ttc" id="ross-extern_8h_html_afffdf140f2c492f61546ad783833f127"><div class="ttname"><a href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a></div><div class="ttdeci">#define TW_LOC</div><div class="ttdef"><b>Definition:</b> <a href="ross-extern_8h_source.html#l00164">ross-extern.h:164</a></div></div>
<div class="ttc" id="ross-extern_8h_html_aad7609a89939a59a33ae1cd1f5601e7e"><div class="ttname"><a href="ross-extern_8h.html#aad7609a89939a59a33ae1cd1f5601e7e">g_tw_gvt_done</a></div><div class="ttdeci">unsigned int g_tw_gvt_done</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00081">ross-global.c:81</a></div></div>
<div class="ttc" id="gtod_8c_html_a460e9a582762cd454d37d9d2704c3a67"><div class="ttname"><a href="gtod_8c.html#a460e9a582762cd454d37d9d2704c3a67">g_tw_clock_rate</a></div><div class="ttdeci">unsigned long long g_tw_clock_rate</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00098">ross-global.c:98</a></div></div>
<div class="ttc" id="structtw__pe_html_aa98f15c0be3577c62140c24fda6ac062"><div class="ttname"><a href="structtw__pe.html#aa98f15c0be3577c62140c24fda6ac062">tw_pe::gvt_status</a></div><div class="ttdeci">unsigned char gvt_status</div><div class="ttdoc">Bits available for gvt computation. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00400">ross-types.h:400</a></div></div>
<div class="ttc" id="ross_8h_html_a80b370bc538e17441aef6afaff852678"><div class="ttname"><a href="ross_8h.html#a80b370bc538e17441aef6afaff852678">tw_stime</a></div><div class="ttdeci">double tw_stime</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00150">ross.h:150</a></div></div>
<div class="ttc" id="splay_8c_html_a2e74d926ed307c34933ddf19e251e68b"><div class="ttname"><a href="splay_8c.html#a2e74d926ed307c34933ddf19e251e68b">tw_pq_minimum</a></div><div class="ttdeci">tw_stime tw_pq_minimum(splay_tree *pq)</div><div class="ttdef"><b>Definition:</b> <a href="splay_8c_source.html#l00345">splay.c:345</a></div></div>
<div class="ttc" id="ross-extern_8h_html_aedd6d883bb5b01f0d5c1121f48b0477e"><div class="ttname"><a href="ross-extern_8h.html#aedd6d883bb5b01f0d5c1121f48b0477e">g_tw_ts_end</a></div><div class="ttdeci">double g_tw_ts_end</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00068">ross-global.c:68</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a49ed2388aaae26e43280b7909c834aaa"><div class="ttname"><a href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a></div><div class="ttdeci">void tw_error(const char *file, int line, const char *fmt,...) NORETURN</div><div class="ttdef"><b>Definition:</b> <a href="tw-util_8c_source.html#l00074">tw-util.c:74</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a5f11084158c441f3119d608cb25027de"><div class="ttname"><a href="mpi__allreduce_8c.html#a5f11084158c441f3119d608cb25027de">tw_gvt_setup</a></div><div class="ttdeci">const tw_optdef * tw_gvt_setup(void)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00026">mpi_allreduce.c:26</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a2a5b594b0675d6ec442baf16bbacdd47afc9c4a97f2aa53e8f930d1b30dde8781"><div class="ttname"><a href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47afc9c4a97f2aa53e8f930d1b30dde8781">ALL_STATS</a></div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00235">st-instrumentation.h:235</a></div></div>
<div class="ttc" id="structtw__pe_html_ac1d26b7bfd058cc55cbf5ee201edb83c"><div class="ttname"><a href="structtw__pe.html#ac1d26b7bfd058cc55cbf5ee201edb83c">tw_pe::stats</a></div><div class="ttdeci">tw_statistics stats</div><div class="ttdoc">per PE counters </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00415">ross-types.h:415</a></div></div>
<div class="ttc" id="structtw__pe_html_a460165a90b9949f8a0f640691173e35c"><div class="ttname"><a href="structtw__pe.html#a460165a90b9949f8a0f640691173e35c">tw_pe::GVT_prev</a></div><div class="ttdeci">tw_stime GVT_prev</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00404">ross-types.h:404</a></div></div>
<div class="ttc" id="tw-opts_8h_html_aeb3c6cf7dfe9b1b9927905a7f5d86855"><div class="ttname"><a href="tw-opts_8h.html#aeb3c6cf7dfe9b1b9927905a7f5d86855">TWOPT_DOUBLE</a></div><div class="ttdeci">#define TWOPT_DOUBLE(n, v, h)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00032">tw-opts.h:32</a></div></div>
<div class="ttc" id="ross-types_8h_html_abea764c61c75c56008ccf665a71246fda7ff3894aed4e1746b6fb19f9472678c8"><div class="ttname"><a href="ross-types_8h.html#abea764c61c75c56008ccf665a71246fda7ff3894aed4e1746b6fb19f9472678c8">OPTIMISTIC</a></div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00030">ross-types.h:30</a></div></div>
<div class="ttc" id="network-mpi_8c_html_a27a1957e366f9b52848477702234fc08"><div class="ttname"><a href="network-mpi_8c.html#a27a1957e366f9b52848477702234fc08">tw_net_read</a></div><div class="ttdeci">void tw_net_read(tw_pe *me)</div><div class="ttdoc">starts service_queues() to poll network </div><div class="ttdef"><b>Definition:</b> <a href="network-mpi_8c_source.html#l00572">network-mpi.c:572</a></div></div>
<div class="ttc" id="aarch64_8h_html_a450cf25fa5291629087ca4198de55757"><div class="ttname"><a href="aarch64_8h.html#a450cf25fa5291629087ca4198de55757">tw_clock_read</a></div><div class="ttdeci">static tw_clock tw_clock_read(void)</div><div class="ttdef"><b>Definition:</b> <a href="aarch64_8h_source.html#l00006">aarch64.h:6</a></div></div>
<div class="ttc" id="st-instrumentation_8c_html_aa6002a27f9236e4d9c61090a247341f5"><div class="ttname"><a href="st-instrumentation_8c.html#aa6002a27f9236e4d9c61090a247341f5">g_st_engine_stats</a></div><div class="ttdeci">int g_st_engine_stats</div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8c_source.html#l00012">st-instrumentation.c:12</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a83edac7c78612d53826c9988106914a2"><div class="ttname"><a href="mpi__allreduce_8c.html#a83edac7c78612d53826c9988106914a2">g_tw_gvt_max_no_change</a></div><div class="ttdeci">static unsigned int g_tw_gvt_max_no_change</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00006">mpi_allreduce.c:6</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a0609349515ccf596bffb1efb59ecd2ea"><div class="ttname"><a href="mpi__allreduce_8c.html#a0609349515ccf596bffb1efb59ecd2ea">tw_gvt_start</a></div><div class="ttdeci">void tw_gvt_start(void)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00034">mpi_allreduce.c:34</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a805cc76b3ba7583d9bb9186afc73e2ba"><div class="ttname"><a href="mpi__allreduce_8c.html#a805cc76b3ba7583d9bb9186afc73e2ba">tw_gvt_force_update_realtime</a></div><div class="ttdeci">void tw_gvt_force_update_realtime(void)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00046">mpi_allreduce.c:46</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a973d9b1e0d445f4df76b97d8f829798d"><div class="ttname"><a href="st-instrumentation_8h.html#a973d9b1e0d445f4df76b97d8f829798d">st_collect_model_data</a></div><div class="ttdeci">void st_collect_model_data(tw_pe *pe, double current_rt, int stats_type)</div><div class="ttdef"><b>Definition:</b> <a href="st-model-data_8c_source.html#l00045">st-model-data.c:45</a></div></div>
<div class="ttc" id="structtw__pe_html_a63048ba8f41665780ab46b3b6635ae91"><div class="ttname"><a href="structtw__pe.html#a63048ba8f41665780ab46b3b6635ae91">tw_pe::trans_msg_ts</a></div><div class="ttdeci">tw_stime trans_msg_ts</div><div class="ttdoc">Last transient messages&#39; time stamp. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00402">ross-types.h:402</a></div></div>
<div class="ttc" id="structtw__pe_html"><div class="ttname"><a href="structtw__pe.html">tw_pe</a></div><div class="ttdoc">Holds the entire PE state. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00375">ross-types.h:375</a></div></div>
<div class="ttc" id="network-mpi_8c_html_af1faeba2bc478835b35af43287f19ba7"><div class="ttname"><a href="network-mpi_8c.html#af1faeba2bc478835b35af43287f19ba7">MPI_COMM_ROSS</a></div><div class="ttdeci">MPI_Comm MPI_COMM_ROSS</div><div class="ttdef"><b>Definition:</b> <a href="network-mpi_8c_source.html#l00004">network-mpi.c:4</a></div></div>
<div class="ttc" id="structtw__optdef_html"><div class="ttname"><a href="structtw__optdef.html">tw_optdef</a></div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00019">tw-opts.h:19</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a7dd173792894040d1a5e97a056808a63"><div class="ttname"><a href="mpi__allreduce_8c.html#a7dd173792894040d1a5e97a056808a63">gvt_cnt</a></div><div class="ttdeci">static unsigned int gvt_cnt</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00009">mpi_allreduce.c:9</a></div></div>
<div class="ttc" id="network-mpi_8c_html_aad791cc8b066ed3cb37912b131b06b00"><div class="ttname"><a href="network-mpi_8c.html#aad791cc8b066ed3cb37912b131b06b00">tw_net_minimum</a></div><div class="ttdeci">tw_stime tw_net_minimum(void)</div><div class="ttdoc">Obtain the lowest timestamp inside the network buffers. </div><div class="ttdef"><b>Definition:</b> <a href="network-mpi_8c_source.html#l00182">network-mpi.c:182</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_ab480140292034a18580653906c0663ed"><div class="ttname"><a href="mpi__allreduce_8c.html#ab480140292034a18580653906c0663ed">tw_gvt_step1</a></div><div class="ttdeci">void tw_gvt_step1(tw_pe *me)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00069">mpi_allreduce.c:69</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ade2fd253bc0194452fe2c12b94577fa1"><div class="ttname"><a href="ross-extern_8h.html#ade2fd253bc0194452fe2c12b94577fa1">g_tw_gvt_realtime_interval</a></div><div class="ttdeci">unsigned long long g_tw_gvt_realtime_interval</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00065">ross-global.c:65</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a7964d4a21bcc7ac7673555c87503418e"><div class="ttname"><a href="mpi__allreduce_8c.html#a7964d4a21bcc7ac7673555c87503418e">TW_GVT_COMPUTE</a></div><div class="ttdeci">#define TW_GVT_COMPUTE</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00004">mpi_allreduce.c:4</a></div></div>
<div class="ttc" id="mpi__allreduce_8h_html_a5ebe8750975e33872b854744a83a3f2d"><div class="ttname"><a href="mpi__allreduce_8h.html#a5ebe8750975e33872b854744a83a3f2d">gvt_print_interval</a></div><div class="ttdeci">static double gvt_print_interval</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8h_source.html#l00004">mpi_allreduce.h:4</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a2a5b594b0675d6ec442baf16bbacdd47a4bd4814759ab4c480ad9a352ac2b16a6"><div class="ttname"><a href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a4bd4814759ab4c480ad9a352ac2b16a6">VT_STATS</a></div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00234">st-instrumentation.h:234</a></div></div>
<div class="ttc" id="ross_8h_html_a650bdf282bba8368dd3325bed7e12abc"><div class="ttname"><a href="ross_8h.html#a650bdf282bba8368dd3325bed7e12abc">TW_STIME_CMP</a></div><div class="ttdeci">#define TW_STIME_CMP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00154">ross.h:154</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ad188f65402a3bc8f2751e3f653849bc3"><div class="ttname"><a href="ross-extern_8h.html#ad188f65402a3bc8f2751e3f653849bc3">g_tw_gvt_interval</a></div><div class="ttdeci">unsigned int g_tw_gvt_interval</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00063">ross-global.c:63</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a2a5b594b0675d6ec442baf16bbacdd47a1be4f69425bed3a0f8f35f42f4dcec4a"><div class="ttname"><a href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a1be4f69425bed3a0f8f35f42f4dcec4a">RT_STATS</a></div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00233">st-instrumentation.h:233</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ad2b9212f634d736cfcdf03b9a3b3a818"><div class="ttname"><a href="ross-extern_8h.html#ad2b9212f634d736cfcdf03b9a3b3a818">g_tw_mblock</a></div><div class="ttdeci">unsigned int g_tw_mblock</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00062">ross-global.c:62</a></div></div>
<div class="ttc" id="st-instrumentation_8c_html_a5d4676b079764929c184583f36cf29e4"><div class="ttname"><a href="st-instrumentation_8c.html#a5d4676b079764929c184583f36cf29e4">st_inst_dump</a></div><div class="ttdeci">void st_inst_dump()</div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8c_source.html#l00088">st-instrumentation.c:88</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a483098cf3c7db0378e825db007a3a300"><div class="ttname"><a href="mpi__allreduce_8c.html#a483098cf3c7db0378e825db007a3a300">tw_gvt_force_update</a></div><div class="ttdeci">void tw_gvt_force_update(void)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00039">mpi_allreduce.c:39</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a83ae3f8b8b94935a1dbdfa2d2552f508"><div class="ttname"><a href="ross-extern_8h.html#a83ae3f8b8b94935a1dbdfa2d2552f508">g_tw_mynode</a></div><div class="ttdeci">tw_peid g_tw_mynode</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00088">ross-global.c:88</a></div></div>
<div class="ttc" id="tw-opts_8h_html_a0d00417e3bef0d001f256f846c72838d"><div class="ttname"><a href="tw-opts_8h.html#a0d00417e3bef0d001f256f846c72838d">TWOPT_UINT</a></div><div class="ttdeci">#define TWOPT_UINT(n, v, h)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00030">tw-opts.h:30</a></div></div>
<div class="ttc" id="ross_8h_html_a471329bf2e6dd88767d6205a7dc5ce54"><div class="ttname"><a href="ross_8h.html#a471329bf2e6dd88767d6205a7dc5ce54">TW_STIME_MAX</a></div><div class="ttdeci">#define TW_STIME_MAX</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00156">ross.h:156</a></div></div>
<div class="ttc" id="ross-extern_8h_html_abb6067d27f1c3e888c1d276490f28088"><div class="ttname"><a href="ross-extern_8h.html#abb6067d27f1c3e888c1d276490f28088">g_tw_masternode</a></div><div class="ttdeci">tw_peid g_tw_masternode</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00089">ross-global.c:89</a></div></div>
<div class="ttc" id="tw-opts_8h_html_a38209b0e7568d41f5448ae5f884290a4"><div class="ttname"><a href="tw-opts_8h.html#a38209b0e7568d41f5448ae5f884290a4">TWOPT_END</a></div><div class="ttdeci">#define TWOPT_END()</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00035">tw-opts.h:35</a></div></div>
<div class="ttc" id="structtw__pe_html_a90e1dbe51a084d6e02580667159e13ff"><div class="ttname"><a href="structtw__pe.html#a90e1dbe51a084d6e02580667159e13ff">tw_pe::pq</a></div><div class="ttdeci">tw_pq * pq</div><div class="ttdoc">Priority queue used to sort events. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00381">ross-types.h:381</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a2a5b594b0675d6ec442baf16bbacdd47a8ef83e71459d4c88cf3916b768a9b62c"><div class="ttname"><a href="st-instrumentation_8h.html#a2a5b594b0675d6ec442baf16bbacdd47a8ef83e71459d4c88cf3916b768a9b62c">GVT_STATS</a></div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00232">st-instrumentation.h:232</a></div></div>
<div class="ttc" id="structtw__statistics_html_a1c60ba2fc1683cc9cff5da33497f13f0"><div class="ttname"><a href="structtw__statistics.html#a1c60ba2fc1683cc9cff5da33497f13f0">tw_statistics::s_net_read</a></div><div class="ttdeci">tw_clock s_net_read</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00136">ross-types.h:136</a></div></div>
<div class="ttc" id="ross_8h_html_a6311f95ce050a925b4639bdf74b75273"><div class="ttname"><a href="ross_8h.html#a6311f95ce050a925b4639bdf74b75273">MPI_TYPE_TW_STIME</a></div><div class="ttdeci">#define MPI_TYPE_TW_STIME</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00151">ross.h:151</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a6ae8d8f288de23fd6a4d9d3c8a7b296a"><div class="ttname"><a href="st-instrumentation_8h.html#a6ae8d8f288de23fd6a4d9d3c8a7b296a">st_collect_engine_data</a></div><div class="ttdeci">void st_collect_engine_data(tw_pe *me, int col_type)</div><div class="ttdef"><b>Definition:</b> <a href="st-sim-engine_8c_source.html#l00010">st-sim-engine.c:10</a></div></div>
<div class="ttc" id="ross_8h_html"><div class="ttname"><a href="ross_8h.html">ross.h</a></div></div>
<div class="ttc" id="st-instrumentation_8c_html_a4775e770faa8c51fc4d08989f610770f"><div class="ttname"><a href="st-instrumentation_8c.html#a4775e770faa8c51fc4d08989f610770f">g_st_model_stats</a></div><div class="ttdeci">int g_st_model_stats</div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8c_source.html#l00011">st-instrumentation.c:11</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a36f9f2e3925202eae4c7cb42f913280c"><div class="ttname"><a href="ross-extern_8h.html#a36f9f2e3925202eae4c7cb42f913280c">tw_pe_fossil_collect</a></div><div class="ttdeci">void tw_pe_fossil_collect(void)</div><div class="ttdef"><b>Definition:</b> <a href="tw-pe_8c_source.html#l00062">tw-pe.c:62</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a4fe19ab323f25724cbad33292dc0fd79"><div class="ttname"><a href="mpi__allreduce_8c.html#a4fe19ab323f25724cbad33292dc0fd79">all_reduce_cnt</a></div><div class="ttdeci">static tw_stat all_reduce_cnt</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00008">mpi_allreduce.c:8</a></div></div>
<div class="ttc" id="structtw__statistics_html_a395ff98d71b2e8aaddcf293fa135cd7b"><div class="ttname"><a href="structtw__statistics.html#a395ff98d71b2e8aaddcf293fa135cd7b">tw_statistics::s_fossil_collect</a></div><div class="ttdeci">tw_clock s_fossil_collect</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00139">ross-types.h:139</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_ab5b7bed8b49012ab92a14632cba26847"><div class="ttname"><a href="mpi__allreduce_8c.html#ab5b7bed8b49012ab92a14632cba26847">st_get_allreduce_count</a></div><div class="ttdeci">tw_stat st_get_allreduce_count()</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00020">mpi_allreduce.c:20</a></div></div>
<div class="ttc" id="structtw__pe_html_ad7f2118d4584a910f40850a2fdc1c9ef"><div class="ttname"><a href="structtw__pe.html#ad7f2118d4584a910f40850a2fdc1c9ef">tw_pe::s_nwhite_sent</a></div><div class="ttdeci">long long s_nwhite_sent</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00408">ross-types.h:408</a></div></div>
<div class="ttc" id="structtw__pe_html_a3f82dbbf2dbb0163b6078ff25cb75a1b"><div class="ttname"><a href="structtw__pe.html#a3f82dbbf2dbb0163b6078ff25cb75a1b">tw_pe::GVT</a></div><div class="ttdeci">tw_stime GVT</div><div class="ttdoc">Global Virtual Time. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00403">ross-types.h:403</a></div></div>
<div class="ttc" id="ross-types_8h_html_a68910a3e880a16d5acbac8fc120229a2"><div class="ttname"><a href="ross-types_8h.html#a68910a3e880a16d5acbac8fc120229a2">tw_stat</a></div><div class="ttdeci">unsigned long long tw_stat</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00048">ross-types.h:48</a></div></div>
<div class="ttc" id="mpi__allreduce_8h_html_a10504ff786bda8b4bc15aa8ef06f6881"><div class="ttname"><a href="mpi__allreduce_8h.html#a10504ff786bda8b4bc15aa8ef06f6881">percent_complete</a></div><div class="ttdeci">static double percent_complete</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8h_source.html#l00005">mpi_allreduce.h:5</a></div></div>
<div class="ttc" id="mpi__allreduce_8h_html_a987cf58596f8cd786d561f50cf23d3d3"><div class="ttname"><a href="mpi__allreduce_8h.html#a987cf58596f8cd786d561f50cf23d3d3">gvt_print</a></div><div class="ttdeci">static void gvt_print(tw_stime gvt)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8h_source.html#l00014">mpi_allreduce.h:14</a></div></div>
<div class="ttc" id="structtw__statistics_html_a1fe13f0669aa85a80819965c67771b1c"><div class="ttname"><a href="structtw__statistics.html#a1fe13f0669aa85a80819965c67771b1c">tw_statistics::s_gvt</a></div><div class="ttdeci">tw_clock s_gvt</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00138">ross-types.h:138</a></div></div>
<div class="ttc" id="aarch64_8h_html_abcd6b97b84bebf1f961f85cd24b56c60"><div class="ttname"><a href="aarch64_8h.html#abcd6b97b84bebf1f961f85cd24b56c60">tw_clock</a></div><div class="ttdeci">uint64_t tw_clock</div><div class="ttdef"><b>Definition:</b> <a href="aarch64_8h_source.html#l00004">aarch64.h:4</a></div></div>
<div class="ttc" id="tw-opts_8h_html_a0e45b7a88a51dca3fe99d31aae9636c4"><div class="ttname"><a href="tw-opts_8h.html#a0e45b7a88a51dca3fe99d31aae9636c4">TWOPT_GROUP</a></div><div class="ttdeci">#define TWOPT_GROUP(h)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00027">tw-opts.h:27</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a7e182a4c303c555479ee1e4143d57784"><div class="ttname"><a href="mpi__allreduce_8c.html#a7e182a4c303c555479ee1e4143d57784">tw_gvt_step1_realtime</a></div><div class="ttdeci">void tw_gvt_step1_realtime(tw_pe *me)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00079">mpi_allreduce.c:79</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a0c508e0a1430e934b924661cb230781a"><div class="ttname"><a href="mpi__allreduce_8c.html#a0c508e0a1430e934b924661cb230781a">gvt_force</a></div><div class="ttdeci">static unsigned int gvt_force</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00010">mpi_allreduce.c:10</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_aef8c69bf46e491eb7fe51c088857d60f"><div class="ttname"><a href="mpi__allreduce_8c.html#aef8c69bf46e491eb7fe51c088857d60f">tw_gvt_step2</a></div><div class="ttdeci">void tw_gvt_step2(tw_pe *me)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00102">mpi_allreduce.c:102</a></div></div>
<div class="ttc" id="ross-extern_8h_html_aeb7d56717189f79b0199a840b0ae6629"><div class="ttname"><a href="ross-extern_8h.html#aeb7d56717189f79b0199a840b0ae6629">g_tw_max_opt_lookahead</a></div><div class="ttdeci">unsigned long long g_tw_max_opt_lookahead</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00064">ross-global.c:64</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a0777df334d083ddc774a6ddf4042f035"><div class="ttname"><a href="mpi__allreduce_8c.html#a0777df334d083ddc774a6ddf4042f035">gvt_opts</a></div><div class="ttdeci">static const tw_optdef gvt_opts[]</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00012">mpi_allreduce.c:12</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a62e322fd5fc534ed1f671bfcae80f21fa645a42a6ad95c6926502061516d79148"><div class="ttname"><a href="st-instrumentation_8h.html#a62e322fd5fc534ed1f671bfcae80f21fa645a42a6ad95c6926502061516d79148">GVT_COL</a></div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00041">st-instrumentation.h:41</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_ae30855389260e86fd61cb17a08046c97"><div class="ttname"><a href="mpi__allreduce_8c.html#ae30855389260e86fd61cb17a08046c97">TW_GVT_NORMAL</a></div><div class="ttdeci">#define TW_GVT_NORMAL</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00003">mpi_allreduce.c:3</a></div></div>
<div class="ttc" id="structtw__pe_html_a8a57f2123eddf6a195d82ecc781093e6"><div class="ttname"><a href="structtw__pe.html#a8a57f2123eddf6a195d82ecc781093e6">tw_pe::id</a></div><div class="ttdeci">tw_peid id</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00376">ross-types.h:376</a></div></div>
<div class="ttc" id="st-instrumentation_8c_html_abcc733db61c88c7260b3337f114e389b"><div class="ttname"><a href="st-instrumentation_8c.html#abcc733db61c88c7260b3337f114e389b">g_st_num_gvt</a></div><div class="ttdeci">int g_st_num_gvt</div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8c_source.html#l00015">st-instrumentation.c:15</a></div></div>
<div class="ttc" id="ross_8h_html_a096f73feb08316896d644277b486c9ea"><div class="ttname"><a href="ross_8h.html#a096f73feb08316896d644277b486c9ea">TW_STIME_DBL</a></div><div class="ttdeci">#define TW_STIME_DBL(x)</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00153">ross.h:153</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_a14d128d340e53baff763e91125748254"><div class="ttname"><a href="mpi__allreduce_8c.html#a14d128d340e53baff763e91125748254">tw_gvt_stats</a></div><div class="ttdeci">void tw_gvt_stats(FILE *f)</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00053">mpi_allreduce.c:53</a></div></div>
<div class="ttc" id="ross-types_8h_html_abea764c61c75c56008ccf665a71246fda65a00e65f23b13a6f19ea3e16f9b9e05"><div class="ttname"><a href="ross-types_8h.html#abea764c61c75c56008ccf665a71246fda65a00e65f23b13a6f19ea3e16f9b9e05">OPTIMISTIC_REALTIME</a></div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00032">ross-types.h:32</a></div></div>
<div class="ttc" id="mpi__allreduce_8c_html_ad804b4a33c7be35ecc27d268d994798e"><div class="ttname"><a href="mpi__allreduce_8c.html#ad804b4a33c7be35ecc27d268d994798e">g_tw_gvt_no_change</a></div><div class="ttdeci">static unsigned int g_tw_gvt_no_change</div><div class="ttdef"><b>Definition:</b> <a href="mpi__allreduce_8c_source.html#l00007">mpi_allreduce.c:7</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a58e9630b16ab32d76f404da9873a69d3"><div class="ttname"><a href="ross-extern_8h.html#a58e9630b16ab32d76f404da9873a69d3">g_tw_gvt_interval_start_cycles</a></div><div class="ttdeci">unsigned long long g_tw_gvt_interval_start_cycles</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00066">ross-global.c:66</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
